home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ccdl150l.zip
/
IO
/
FREAD.SRC
< prev
next >
Wrap
Text File
|
1997-03-17
|
2KB
|
106 lines
SECTION code
XDEF _fread
;
; Line 8: {
;
_fread:
LINK A6,#$0
MOVEM.L D3/D4/D5/D6/D7/A2/A3,-(A7)
MOVEA.L ($14,A6),A2
MOVE.L ($C,A6),D5
MOVE.L ($10,A6),D6
;
; Line 10: int len = count * size,i;
;
MOVE.L D6,-(A7)
MOVE.L D5,-(A7)
BSR __mulu
ADDQ.W #$8,A7
MOVE.L D0,D7
;
; Line 11: char *lbuf = buf;
;
MOVEA.L ($8,A6),A3
;
; Line 12: if (stream->token != 0x444c)
;
CMPI.W #$444C,($1C,A2)
BEQ L_0
;
; Line 13: return 0;
;
MOVEQ #$0,D0
BRA L_2
L_0:
;
; Line 14: if (!(stream->flags & 0x0001 )) {
;
MOVE.L ($4,A2),D0
ANDI.L #$1,D0
TST.L D0
BNE L_3
;
; Line 15: stream->flags |= 0x0010 ;
;
ORI.L #$10,($4,A2)
;
; Line 16: return 0;
;
MOVEQ #$0,D0
BRA L_2
L_3:
MOVEQ #$0,D3
BRA L_7
L_5:
;
; Line 19: rv = _basegetc(stream);
;
MOVE.L A2,-(A7)
BSR __basegetc
ADDQ.W #$4,A7
MOVE.L D0,D4
;
; Line 20: if (rv == (-1) )
;
CMPI.L #$FFFFFFFF,D4
BNE L_8
;
; Line 21: return i / size;
;
MOVE.L D3,-(A7)
MOVE.L D5,-(A7)
BSR __divu
ADDQ.W #$8,A7
BRA L_2
L_8:
;
; Line 22: *lbuf++ = (char) rv;
;
MOVEA.L A3,A0
ADDQ.W #$1,A3
MOVE.B D4,(A0)
;
; Line 23: }
;
ADDQ.L #$1,D3
L_7:
;
; Line 18: for (i=0; i < len; i++) {
;
CMP.L D7,D3
BLT L_5
L_6:
;
; Line 24: return count;
;
MOVE.L D6,D0
L_2:
MOVEM.L (A7)+,D3/D4/D5/D6/D7/A2/A3
UNLK A6
RTS
SECTION data
SECTION bss
XREF __divu
XREF __basegetc
XREF __mulu